package Leetcode;

import tree.TreeNode;

public class diameterOfBinaryTree {
    int result = 0;
    public int diameterOfBinaryTree(TreeNode root) {
        if (root == null){
            return 0;
        }
        maxDepth(root);
        return result;
    }
    public int maxDepth(TreeNode node) {
        if (node == null) {
            return 0;
        }
        int leftDepth = maxDepth(node.left);  // 左子树深度
        int rightDepth = maxDepth(node.right); // 右子树深度
        result = Math.max(result, leftDepth + rightDepth); // 更新直径
        return Math.max(leftDepth, rightDepth) + 1; // 返回当前子树深度
    }
}
